package com.icebartech.core.modules;

import java.util.List;

/**
 * service抽象接口类
 * @author wenhsh
 *
 * @param <T>
 */
public interface BaseService {

	/**
	 * DESC: 添加单个实体
	 * @param entity
	 * @return
	 * @throws Exception
	 */
	public <Entity> int add(Entity record);
	
	/**
	 * 添加实体，只新增非空字段
	 * @param record
	 * @return
	 */
	public <Entity> int addSelective(Entity record);
	
	
	/**
	 * DESC: 根据ID修改实体
	 * @param entity
	 * @return
	 * @throws Exception
	 */
	public <Entity> int update(Entity record);
	
	/**
	 * 根据id更新实体，只更新非空字段
	 * @param entity
	 * @return
	 */
	public <Entity> int updateSelective(Entity record);
	
	/**
	 * DESC: 根据ID删除单个实体
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public int deleteById(Long id);
	
	
	/**
	 * DESC: 根据ID加载单个实体
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public <Entity> Entity findById(Long id);
	
	/**
	 * 根据条件查询对应的数据集合
	 * @param record
	 * @return
	 */
	public <Entity> List<Entity> findByList(Entity record);
	
}
